package com.huang.unsafe;

import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;

public class ListTest {
    public static void main(String[] args) {
        //arraylist线程不安全
        /*  第一种解决方案  vitor安全
        *   二  将不安全转化为安全  List<String> strings =Collections.synchronizedList(new ArrayList<>());
        *    三  List<String> strings =new CopyOnWriteArrayList<>();
        *       copyonwrite 写入时复制 给调用者 写完set回去  避免被覆盖
        *
        *
        * */

      //  List<String> strings =new CopyOnWriteArrayList<>();
        ArrayList<String> strings = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            new Thread(()->{
                strings.add(UUID.randomUUID().toString().substring(0,5));
                System.out.println(strings);
            },String.valueOf(i)).start();

        }

    }
}
